package cn.edu.cug.cs.gtl.oi.ui.menu;

import javax.swing.*;
import java.awt.event.KeyEvent;

public class JMenuPointLine extends JMenu{
    JMenu MenuPointEdit = new JMenu("点编辑");
    JMenuItem ItemMouseCreatePoint = new JMenuItem("鼠标创建点");
    JMenuItem ItemKeyboardCreatePoint = new JMenuItem("键盘创建点");
    JMenuItem ItemMouseCreateNote = new JMenuItem("鼠标创建注释");
    JMenuItem ItemKeyboardCreateNote = new JMenuItem("键盘创建注释");
    JMenuItem ItemSelectNodeToLine = new JMenuItem("选择节点成线");
    JMenuItem ItemRealtimeNodeToLine = new JMenuItem("实时连点成线");
    JMenu MenuMouseCreateLine = new JMenu("鼠标创建线条");
    JMenuItem ItemPolyLine = new JMenuItem("折线");
    JMenuItem ItemStreamLine = new JMenuItem("流线");
    JMenuItem ItemRay = new JMenuItem("射线");
    JMenuItem ItemSplineCurve = new JMenuItem("样条曲线");
    JMenuItem ItemArc = new JMenuItem("弧");
    JMenuItem ItemCircle = new JMenuItem("圆-O_R");
    JMenuItem ItemEllipse = new JMenuItem("椭圆");
    JMenuItem ItemParallelogram = new JMenuItem("平行四边形");
    JMenuItem ItemRectangle = new JMenuItem("矩形");
    JMenuItem ItemRegularPolygon = new JMenuItem("正多边形");
    JMenu MenuKeyboardCreateLine = new JMenu("键盘创建线条");
    JMenuItem ItemKeyPolyLine = new JMenuItem("折线");
    JMenuItem ItemKeyCircle = new JMenuItem("圆-O_R");
    JMenuItem ItemKeyEllipse = new JMenuItem("椭圆");
    JMenuItem ItemKeyRectangle = new JMenuItem("矩形");
    JMenuItem ItemLineEncrypt = new JMenuItem("线条加密");
    JMenuItem ItemSmooth = new JMenuItem("光滑");
    JMenuItem ItemFew = new JMenuItem("抽稀");
    JMenuItem ItemClose = new JMenuItem("封闭");
    JMenuItem ItemShowLinePoint = new JMenuItem("显示线上点");
    JMenuItem ItemAddNode = new JMenuItem("添加节点");
    JMenuItem ItemDelNode = new JMenuItem("删除节点");
    JMenuItem ItemNodeClose = new JMenuItem("节点靠近");
    JMenuItem ItemXMovePoint = new JMenuItem("沿X轴移动点");
    JMenuItem ItemYMovePoint = new JMenuItem("沿Y轴移动点");
    JMenuItem ItemZMovePoint = new JMenuItem("沿Z轴移动点");
    JMenuItem ItemConnectLine = new JMenuItem("连接线条");
    JMenuItem ItemNodeClip = new JMenuItem("结点剪断");
    JMenuItem ItemPreciseClip = new JMenuItem("精确剪断");
    JMenuItem ItemBorderLine = new JMenuItem("边界打断线");
    JMenuItem ItemLineExtend = new JMenuItem("线扩展");
    JMenuItem ItemShowLineDirect = new JMenuItem("显示线方向");
    JMenuItem ItemLineReverse = new JMenuItem("线条反向");
    JMenuItem ItemExplode = new JMenuItem("炸开");
    JMenuItem ItemDisject = new JMenuItem("散断");
    JMenuItem ItemCombine = new JMenuItem("组合");
    JMenuItem ItemLineOrbitCheck = new JMenuItem("线条交点检查");
    JMenuItem ItemLineSelfOrbitCheck = new JMenuItem("线条自相交检查");

    public JMenuPointLine() {
        this.setText("点线(L)");
        this.setMnemonic(KeyEvent.VK_L);
        init();
    }
    void init(){

        MenuPointEdit.add(ItemMouseCreatePoint);

        MenuPointEdit.add(ItemKeyboardCreatePoint);
        MenuPointEdit.addSeparator();

        MenuPointEdit.add(ItemMouseCreateNote);

        MenuPointEdit.add(ItemKeyboardCreateNote);

        this.add(MenuPointEdit);
        this.addSeparator();

        this.add(ItemSelectNodeToLine);

        this.add(ItemRealtimeNodeToLine);


        MenuMouseCreateLine.add(ItemPolyLine);

        MenuMouseCreateLine.add(ItemStreamLine);
        MenuMouseCreateLine.addSeparator();

        MenuMouseCreateLine.add(ItemRay);

        MenuMouseCreateLine.add(ItemSplineCurve);
        MenuMouseCreateLine.addSeparator();

        MenuMouseCreateLine.add(ItemArc);

        MenuMouseCreateLine.add(ItemCircle);

        MenuMouseCreateLine.add(ItemEllipse);
        MenuMouseCreateLine.addSeparator();

        MenuMouseCreateLine.add(ItemParallelogram);

        MenuMouseCreateLine.add(ItemRectangle);
        MenuMouseCreateLine.addSeparator();

        MenuMouseCreateLine.add(ItemRegularPolygon);

        this.add(MenuMouseCreateLine);

        MenuKeyboardCreateLine.add(ItemKeyPolyLine);
        MenuKeyboardCreateLine.addSeparator();

        MenuKeyboardCreateLine.add(ItemKeyCircle);

        MenuKeyboardCreateLine.add(ItemKeyEllipse);
        MenuKeyboardCreateLine.addSeparator();

        MenuKeyboardCreateLine.add(ItemKeyRectangle);

        this.add(MenuKeyboardCreateLine);
        this.addSeparator();

        ItemLineEncrypt.setEnabled(false);
        this.add(ItemLineEncrypt);

        ItemSmooth.setEnabled(false);
        this.add(ItemSmooth);

        ItemFew.setEnabled(false);
        this.add(ItemFew);

        ItemClose.setEnabled(false);
        this.add(ItemClose);
        this.addSeparator();

        this.add(ItemShowLinePoint);

        ItemAddNode.setEnabled(false);
        this.add(ItemAddNode);

        ItemDelNode.setEnabled(false);
        this.add(ItemDelNode);

        ItemNodeClose.setEnabled(false);
        this.add(ItemNodeClose);
        this.addSeparator();

        ItemXMovePoint.setEnabled(false);
        this.add(ItemXMovePoint);

        ItemYMovePoint.setEnabled(false);
        this.add(ItemYMovePoint);

        ItemZMovePoint.setEnabled(false);
        this.add(ItemZMovePoint);
        this.addSeparator();

        ItemConnectLine.setEnabled(false);
        this.add(ItemConnectLine);

        ItemNodeClip.setEnabled(false);
        this.add(ItemNodeClip);

        ItemPreciseClip.setEnabled(false);
        this.add(ItemPreciseClip);

        this.add(ItemBorderLine);

        ItemLineExtend.setEnabled(false);
        this.add(ItemLineExtend);
        this.addSeparator();

        ItemShowLineDirect.setEnabled(false);
        this.add(ItemShowLineDirect);

        ItemLineReverse.setEnabled(false);
        this.add(ItemLineReverse);
        this.addSeparator();

        ItemExplode.setEnabled(false);
        this.add(ItemExplode);

        ItemDisject.setEnabled(false);
        this.add(ItemDisject);

        ItemCombine.setEnabled(false);
        this.add(ItemCombine);
        this.addSeparator();

        ItemLineOrbitCheck.setEnabled(false);
        this.add(ItemLineOrbitCheck);

        ItemLineSelfOrbitCheck.setEnabled(false);
        this.add(ItemLineSelfOrbitCheck);
    }
}
